IBM.TM. compatible PCs initially were designed around a bus architecture known as Industry Standards Association or ISA bus, which was an asynchronous bus. A more improved bus system, known as the PCI bus has gained popularity in more powerful PCs and notebook computers. The PCI bus is a synchronous data bus and may support a higher data bandwidth than the prior ISA bus designs. To maintain backward compatibility with older "legacy" PC hardware, most PCI bus PCs may be provided with an ISA bus interface and expansion ports.
One powerful feature of the PCI bus architecture is PCI bus mastering. Simply stated, bus mastering allows any device (or one of a number of specified devices) to gain control of the system bus to the exclusion of all other devices, including the host CPU, for data transfer. Bus mastering allows for increased data bandwidth on the bus and also frees up the host CPU for other tasks, as the host CPU is no longer needed to supervise data transfers on the bus.
Multimedia computer designs are increasingly popular. In a multimedia computer, as the name implies, video, graphic and text data may be combined in one multimedia display. Such displays, however, may require a significant amount of data bandwidth to generate. For example a device generating MotionVideo.TM. data such as an MPEG decoder, may need to transfer such data over a system bus to a display memory of a display controller.
One solution is to use PCI bus mastering as a vehicle to transfer multimedia data over a system bus. Hardware devices may feed data to one another without requiring CPU intervention or using CPU bandwidth. Bus mastering allows the CPU to concentrate on other tasks, such as 3-D rendering, CD-ROM reading, or other intensive operations which enhance the PC platform for game play and user interface. For the purpose of this application, the definition of bus mastering may be narrowed to mean direct streaming of video to VGA memory.
One problem encountered in using PCI bus mastering, is that devices commercially sold as PCI compatible may not be entirely compatible with the PCI standard. In particular, prior art display controllers touted as PCI compatible may not be entirely compatible with all PCI bus protocols. PCI bus VGA adapters or devices are on the market and in use which may not properly arbitrate display memory with a PCI bus master device.
In the PCI bus master protocol, a device attempting to gain control of the bus for the purposes of data streaming to a destination device must first communicate that intention to the destination device. The destination device may respond with an affirmative indication or RETRY indication. An affirmative indication indicates that the destination device is prepared to accept a data stream from a device acting as bus master. A RETRY indication indicates that the destination device is preoccupied, and that the bus master device should retry its request, typically after a predetermined time period.
One problem with prior art PCI bus VGA controllers which may be preoccupied with another task (e.g., bit block transfer) is that this RETRY protocol may not be supported. Early PCI bus VGA controllers which may be preoccupied with another task may not be equipped with a RETRY feature as it may not have been envisioned that such controllers would be destination targets for data streaming. It should be noted that problems of PCI bus devices not being entirely compatible with the PCI standard is not limited to any one manufacturer or any one type of PCI bus device. Moreover, this problem of lack of complete compatibility of PCI bus devices to the PCI bus standard is well known in the art.
Thus, if a PCI device attempts to take control of the bus and stream data to a prior art PCI bus VGA controller, such attempts may or may not work, depending upon the make and model (and vintage) of a user's VGA controller. If the RETRY protocol is not supported by the VGA controller, attempts to stream data to that controller as a target device may result in system crash or erratic results.
One prior art solution to this problem has been to instruct the user to replace his or her PCI bus display controller card or IC with an upgraded version. However, such a solution may be unworkable. If a producer of multimedia components (such as upgrade kits, cards or the like) wishes to market such products, they must be compatible with at least a substantial portion of "legacy" products. Multimedia products in general have suffered from such user frustrations, as users are generally not prepared to scrap their investment in PC hardware (especially that of recent vintage) merely to install a new multimedia device.